In order to implement communication fault tolerance, and in some cases increase data throughput, a computer system may couple to a network by way of a plurality of communication ports (hereinafter just ports), with the ports either implemented on a single network interface card (NIC) or the ports implemented on multiple NICs. The ports are “teamed” such that, regardless of the actual number of ports, the ports appear as a single communication port to application level programs in the computer system.
Various application level programs may wish to join multicast groups and thus receive multicast data flows from that group. Multicast data flows are streams of data from streaming sources such as streaming audio, streaming video, and streaming financial market data. The streaming source generates the streaming data, and provides the streaming data to an internet protocol (layer 3) router. If no downstream device has requested the streaming data, the stream “dies” at the router. If a downstream device wishes to receive the streaming data, the downstream device issues a join request, and the router then forwards the streaming data to the local area network (LAN) and/or sub-network on which the downstream device resides.
Multicast data flow is similar to broadcast traffic in that, without switch and/or router intervention, every computer system on the LAN or subnet to which the multicast data flow is forwarded receives the multicast data flow. Some switch devices (in particular layer 2 devices such as Ethernet switches) implement join request snooping, and configure ports dynamically so that the switch devices only forward multicast data flow to ports from which join requests originate for each IP multicast group. In the case of teamed communication ports, and with respect to multicast group join requests, those requests issue only from the primary communication port. Since the primary communication port is coupled to a specific switch port, the join request only affects the primary communication port's reception of multicast traffic. This forces all multicast data flow into the primary communication port.